﻿using UnityEngine;
using System.Collections;

/// <summary>
/// 游戏功能按钮的抽象类别 普攻 ， 移动 ，方向等 对应设备时 映射到不同的具体按钮 。
/// </summary>
public enum EKeyList
{
    KL_Attack = 0,
    KL_SubAttack,
    KL_SkillAttack,
    KL_AuxKey,

    KL_Grab,
    KL_Jump,
    KL_Move,
    KL_CameraUp,
    KL_CameraDown,
    KL_LastKey,
    KL_Max,
};

/// <summary>
/// 按键操作配置，改配置为动作输入触发条件类型 。 每个操作映射到 key 的状态
/// </summary>
public enum EOperation
{
    EO_None = 0,
    EO_Attack,
    EO_SpAttack,
    EO_Skill,
    EO_Move,
    EO_Jump,
    EO_Grab,
    EO_Front,
    EO_Back,
    EO_Last,
    EO_Auxiliary,
};


/// <summary>
///每个按钮对应的响应类型 (普攻按钮是双击，还是单击，按下，还是释放 不同的状态都对应不同的条件) EInputType 
/// </summary>
public enum EInputType
{
    EIT_Click = 0,
    EIT_DoubleClick,
    EIT_Press,
    EIT_Release,
    EIT_Pressing,
    EIT_Releasing, 
};

public enum EUnitCamp
{
    EUC_NONE = 0,	    // ÖÐÁ¢
    EUC_FRIEND = 1,     // ÅóÓÑ
    EUC_ENEMY = 2,      // µÐÈË
};

public enum EUnitType
{
    EUT_NONE = 0,
    EUT_LocalPlayer = 1,
    EUT_OtherPlayer = 2,
    EUT_Npc = 4,
    EUT_Monster = 5,
    EUT_MonsterItem = 6,
    EUT_SceneItem = 7,
    EUT_MAX,
};

public enum UnitState
{
    Normal = 0,
    Die = 1,
};

public enum ECompareType
{
    ECT_EQUAL = 0, // µÈÓÚ£š==£©
    ECT_NOT_EUQAL = 1, // ²»µÈÓÚ£š£¡=£©
    ECT_GREATER = 2, // ŽóÓÚ£š>£©
    ECT_LESS = 3, // Ð¡ÓÚ£š<£©
    ECT_GREATER_EQUAL = 4, // ŽóÓÚ»òµÈÓÚ£š>=£©
    ECT_LESS_EQUAL = 5, // Ð¡ÓÚ»òµÈÓÚ£š<=£©
};

public enum EVariableIdx
{
    EVI_HP = 0,
    EVI_HPPercent = 1,
    EVI_Level = 2,
    EVI_Custom = 3,
    EVI_CustomMax = 20,
};

public enum ECellType
{
    None = 0,
    Normal = 1,
    Genius = 2,
    Boss = 3,
    Extra = 4,
};

/// <summary>
/// 刷怪方式
/// </summary>
public enum EMonsterFlushMode
{
    None = 0,
    /// <summary> 一个一个刷</summary>
    FlushOneByOne,
    /// <summary> 一波一波的刷</summary>
    FlushWaveByWave,
    /// <summary> 按时间</summary>
    FlushByTime,
}

/// <summary>
/// 影响的玩家属性(现在变成了27个 最近的表5月分 下面要改)
/// 这个基本搞清楚了
/// </summary>
public enum EPA // player attribute
{
    /// <summary> 当前血量</summary>
    CurHP = 0,
    /// <summary>最大血量(受buff 的影响,如果有的话) </summary>
    HPMax,
    /// <summary> 血量回复</summary>
    HPRestore,
    //------------------------------------------------
    /// <summary> 当前蓝量</summary>
    CurSoul,
    /// <summary> 最大蓝量</summary>
    SoulMax,
    /// <summary> 蓝量回复</summary>
    SoulRestore,
    //------------------------------------------------
    /// <summary> 当前能量</summary>
    CurAbility,
    /// <summary> 最大能量</summary>
    AbilityMax,
    /// <summary> 能量回复</summary>
    AbRestore,
    //------------------------------------------------
    /// <summary> 当前经验</summary>
    CurExp,
    /// <summary> 最大经验值</summary>
    EXPMax,
    //------------------------------------------------
    /// <summary> 当前等级</summary>
    Level,
    //------------------------------------------------
    /// <summary>伤害 </summary>
    Damage,
    /// <summary> 防御</summary>
    Defense,
    //------------------------------------------------
    /// <summary> 暴击</summary>
    Critical,
    /// <summary> </summary>
    Block,
    /// <summary> </summary>
    Hit,
    /// <summary> </summary>
    Tough,
    //------------------------------------------------
    /// <summary> 移动速度</summary>
    MoveSpeed,
    //------------------------------------------------
    /// <summary> 基础攻击</summary>
    DamageBase,
    /// <summary> </summary>
    Fortify,
    /// <summary> </summary>
    MAX,
    SpecialDamage,
    SpecialDefense,
};
public enum EBuffSpecialEffect
{
    None = 0,
    CanNotHurt = 1,
    CanMove = 2,
    CanRotate = 3,
    Max,
}
//战斗返回结果 ,本地计算的
public enum ECombatResult
{
    /// <summary>怪物受到普通攻击</summary>
    ECR_Normal,
    /// <summary> 格挡</summary>
    ECR_Block,
    /// <summary>怪物受到暴击</summary>
    ECR_Critical,
    /// <summary> 玩家受到普通攻击</summary>
    ECR_Player_Normal,
    /// <summary> 玩家受到暴击</summary>
    ECR_Player_Critical,
    /// <summary>玩家回血 </summary>
    ECR_Player_Hp,
};

// Instance 副本
public enum ESceneType
{
    Invalid = 0,
    Startup = 1,
    Loggin = 2,
    CreateRole = 3,
    GameGuide = 4,
    Main = 5,
    Level = 7,
    Max
}

public enum ESceneID
{
    Invalid = 0,
    Startup = 1000,
    A_FirstGameGuide = 2000,
    CreateRole = 3000,
    Main = 4000,
    StoryLevel = 10000,       //  故事副本
    PVE = 9000,
};

/// <summary>
/// 正在加载中的场景信息
/// </summary>
public class LoadingSceneInfo
{
    public ESceneID ID;
    public ESceneType Type;
    public string Name;
    public int Data = 0;
}

public enum TriggerMsgId
{
    Active,
    Destroy,
    Enter,
    Stay,
    Exit,
}


public enum StoryMsgId
{
    StoryBegin = 0,
    StoryEnd = 1,
    AllFinished,
}


public enum EffectState
{
    OnStart,
    OnDestory,
    OnCompletely
}


public enum WindowID
{
    LoadingWnd,
    Moba1v1MatchingWnd,
    MobaLoadWaitingWnd,
    Moba1v1FightHeroWnd,
    // fight
    ComboInfo,
    FightWnd,
    InstanceAndOtherPanel,
    MainUIWnd,
    LoginWnd,
    BaseGameBtnGroup,
    PrepareBattleWnd, //上阵
    GeneralTopWnd,//顶部通用栏
    MessageBoxWnd,//
    FightWinWnd,  
    HeroWnd,    
    Max,
}